The most common form of user-authentication generally relies on shared secrets. Two entities involved in authentication (e.g., a user and a service) must each have knowledge of the shared secret, which is generally a password for the user account. This user-authentication technique has numerous problems in that—for maximum security—a different secret of the user must be maintained for every service, or else access to the secret to one service could be used to impersonate the user for other services. Some form of cryptography can be used to offer some advantages to authentication. One particular class of cryptosystems, known as asymmetric cryptosystems, use a key pair composed of a public key and a private key to authenticate a user. If the user keeps the private key private then only the user will be able to encrypt data that can be decrypted by the public key. However, asymmetric cryptosystem authentication encounters problems when credentials must be revoked or an account updated. Typically shared and private key pairs would have to be updated on all involved systems. Certificate Revocation Lists (CRL) have been used in the past as a way for parties to relay information about the current state of accounts. However, use of CRL has several vulnerabilities that could allow attackers to bypass the system. Thus, there is a need in the digital signature field to create a new and useful system and/or method for generating a digital signature.
Accordingly, one method according to a preferred embodiment can include delivering a public key from a first user device to a third party; requesting a second portion of a private key by the first user device; receiving at the first user device at least a second portion of a digital signature derived from the second portion of the private key in response to a successful user challenge completed on a second user device; and delivering a digital signature from the first user device to the third party.
Another method according preferred embodiment can include receiving a request at a server from a private key module associated with a first user device; directing a request for a first portion of the private key from the server to a second user device; and in response to a successful user challenge creating a first portion of a digital signature and a second portion of a digital signature at the server. The method of the preferred embodiment can further include combining the first portion of the digital signature and the second portion of the digital signature; and delivering the digital signature to the first user device.
The methods of the preferred embodiment can function to secure the digital signature process by splitting or dividing the user's private key into two or more portions, each of which require independent authorization from the user in order to create the digital signature. Other features and advantages of the preferred embodiments are described in detail below with reference to the following figures.